package br.edu.ifrn.sgpapp.activity;

import java.util.List;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import br.edu.ifrn.sgp.dtos.ArquivoProcessoDTO;
import br.edu.ifrn.sgp.dtos.ProcessoDTO;
import br.edu.ifrn.sgpapp.R;
import br.edu.ifrn.sgpapp.adapter.ArquivosProcessoListAdapter;
import br.edu.ifrn.sgpapp.rest.Enderecos;
import br.edu.ifrn.sgpapp.task.DownloadArquivoTask;
import br.edu.ifrn.sgpapp.util.ValidatorUtil;

public class ListarArquivosProcessoActivity extends GenericActivity<List<ArquivoProcessoDTO>> {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.lista_com_texto_ajuda);
		processarSolicitacao();
	}
	
	@Override
	public List<ArquivoProcessoDTO> doInBackgroundTask(String... params) {
		ProcessoDTO processo = (ProcessoDTO) getIntent().getSerializableExtra(getString(R.string.extra_processo));
		
		if (ValidatorUtil.isNotEmpty(processo.getArquivosProcesso())){
			return (List<ArquivoProcessoDTO>) processo.getArquivosProcesso();
		}
		
		return null;
	}

	@Override
	public void onPostExecuteTask(final List<ArquivoProcessoDTO> arquivos) {
		ListView listaArquivos = (ListView) findViewById(R.id.list);
		ArquivosProcessoListAdapter adapter = new ArquivosProcessoListAdapter(this, arquivos);
		listaArquivos.setAdapter(adapter);
		listaArquivos.setEmptyView(findViewById(R.id.textEmptyView));
		
		listaArquivos.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				ProgressDialog mProgressDialog = new ProgressDialog(ListarArquivosProcessoActivity.this);
				mProgressDialog.setMessage("Baixando...");
				mProgressDialog.setIndeterminate(false);
				mProgressDialog.setMax(100);
				mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

				String[] param = {Enderecos.URL_PRINCIPAL_SGP + "arquivo?id="+ arquivos.get(position).getIdArquivo()};
				
				DownloadArquivoTask downloadFile = new DownloadArquivoTask(mProgressDialog, ListarArquivosProcessoActivity.this);
				downloadFile.execute(param);
			}
		});
	}
}
